function plot_resource_grid(resource_grid, num_users, user_subcarriers)
% plot_resource_grid - 绘制OFDMA系统中的时频资源网格
%
% 输入参数:
%   resource_grid    - 时频资源网格，行为子载波，列为OFDM符号
%   num_users        - 用户数量
%   user_subcarriers - 元胞数组，每个元素包含分配给一个用户的子载波索引

% 获取参数
[num_subcarriers, num_symbols] = size(resource_grid);

% 创建新图
figure('Name', 'OFDMA资源网格', 'Position', [100, 100, 1200, 600]);

% 创建资源分配网格（用于可视化不同用户的资源）
allocation_grid = zeros(num_subcarriers, num_symbols);

% 标记每个用户的资源
for user = 1:num_users
    subcarrier_indices = user_subcarriers{user};
    for symbol = 1:num_symbols
        allocation_grid(subcarrier_indices, symbol) = user;
    end
end

% 绘制资源分配网格
subplot(1, 2, 1);
imagesc(allocation_grid);
colormap(jet(num_users+1));
colorbar('Ticks', 0:num_users, 'TickLabels', ['未分配', arrayfun(@(x) ['用户 ' num2str(x)], 1:num_users, 'UniformOutput', false)]);
title('资源分配');
xlabel('OFDM符号索引');
ylabel('子载波索引');
grid on;

% 绘制资源网格幅度
subplot(1, 2, 2);
imagesc(1:num_symbols, 1:num_subcarriers, abs(resource_grid));
colormap(gca, hot);
colorbar;
title('资源网格幅度');
xlabel('OFDM符号索引');
ylabel('子载波索引');
grid on;

% 添加总标题
sgtitle('OFDMA 时频资源网格');

end 